package com.alibaba.citrus.ots.unified.inventory.repository;

import com.alibaba.lattice2.epoch.sdk.model.Result;
import com.epoch.app.otsunifiedinventory.domain.allocateapplyorder.dto.LoadAllocateApplyOrderByOutAllocateApplyOrderIdRequest;
import com.epoch.app.otsunifiedinventory.domain.allocateapplyorder.model.AllocateApplyOrder;
import com.epoch.app.otsunifiedinventory.dto.response.AllocateApplyOrderListDTO;
import com.epoch.app.otsunifiedinventory.dto.response.AllocateApplyOrderResponse;
import com.epoch.app.otsunifiedinventory.model.dto.AllocateApplyOrderCodeQueryRequest;
import com.epoch.app.otsunifiedinventory.sdo.AllocateApplyOrderSDO;

import java.util.List;

/**
 * @author heyu
 * @description 调拨预报单查询
 */
public interface AllocateApplyOrderReadRepository {
    /**
     * 根据预报单id查找预报单数据
     * @param allocateApplyOrderIds
     * @return
     */
    public List<AllocateApplyOrderListDTO> queryAllocateApplyByAllocateApplyOrderIds(List<String> allocateApplyOrderIds);

    /**
     * 根据调拨单code查询
     * @param code
     * @return
     */
    public AllocateApplyOrderResponse queryAllocateApplyOrderByCode(String code);


    List<AllocateApplyOrderSDO> getAllocateApplyOrderSdoListByIds(List<Long> idList);



    AllocateApplyOrderSDO query(AllocateApplyOrderCodeQueryRequest request);

    /**
     * 根据外部单号查找预报单号
     * @param outAllocateApplyOrderId
     * @return
     */
    Result<String> getAllocateApplyOrderIdByOutAllocateApplyOrderId(String outAllocateApplyOrderId);


}
